
// 聚焦指令的配置对象
export default {
  inserted (el) {
    fn(el)
  },
  update (el) {
    fn(el)
  }
}

function fn (el) {
  // el可能是input，或textarea或div
  const tagNames = ['INPUT', 'TEXTAREA']
  // 如果el就是input或textarea，直接调用focus()
  if (tagNames.includes(el.tagName)) {
    return el.focus()
  }
  // 如果el不是input或textarea，进行内部查到
  // 先查找有没有input
  let target = el.querySelector('input')
  // 如果找到了，让input聚焦
  if (target) {
    return target.focus()
  }
  // 在查找有没有textarea
  target = el.querySelector('textarea')
  // 如果找到了，让textarea聚焦
  if (target) {
    return target.focus()
  }
  console.error('【focus】指令需用在表单元素上')
}
